// 引入依赖包
import axios from 'axios'
import querystring from "querystring"
import Vue from 'vue'
import { errorAlert } from '../utils/alert'
import store from '../store'

//2环境
// 开发环境  ：8080
if (process.env.NODE_ENV == 'development') {
    Vue.prototype.$pre = 'http://localhost:3000'
}

// 生产环境   3000
if (process.env.NODE_ENV == 'production') {
    Vue.prototype.$pre = ''
}

//3请求拦截 
axios.interceptors.request.use(config => {
    // 携带一些参数
    if (config !== '/api/userlogin') {
        config.headers.authorization = store.state.user.token
    }

    return config
})


axios.interceptors.response.use(res => {
    // 打印数据
    console.log('本次请求地址' + res.config.url);
    console.log(res);

    //统一处理失败
    if (res.data.code !== 200) {
        errorAlert(res.data.msg)
    }


    return res
})


// 封装get
/**
 *
 *
 * @param {*} url 请求路径
 * @param {*} [params={}] 参数，默认参数是{}
 * @returns axios
 */

export function get(url, params = {}) {
    return axios({
        url,
        method: 'get',
        params: params
    })
}

// 6.封装post
/**
 *
 *
 * @param {*} url 请求路径
 * @param {*} [params={}] 参数
 * @param {boolean} [isFile=false] 是否文件，默认false
 * @returns axios
 */

export function post(url, params = {}, isFile = false) {
    let data = null
    if (isFile) {
        data = new FormData()
        for (let key in params) {
            data.append(key, params[key])
        }
    } else {
        data = querystring.stringify(params)
    }

    return axios({
        url,
        method: 'post',
        data
    })
}